List of algorithms
The following is a list of algorithms along with one-line descriptions for each.
Combinatorial algorithms
General combinatorial algorithms
Graph algorithms
Further information:
Graph theory and Category:Graph algorithms
Graph drawing
Network theory
Routing
Search
Subgraphs
Sequence algorithms
Approximate matching
- Bitap algorithm: fuzzy algorithm that determines if strings are approximately equal.
- Phonetic algorithms
- String metrics: compute a similarity or dissimilarity (distance) score between two pairs of text strings
- Trigram search: search for text when the exact syntax or spelling of the target object is not precisely known
Item search
Merging
- Simple Merge algorithm
- k-way Merge algorithm
- Union (merge, with elements on the output not repeated)
Permutations
Sequence alignment
Sorting
- Exchange Sorts
- Humorous or ineffective
- Hybrid
- Flashsort
- Introsort: begin with quicksort and switch to heapsort when the recursion depth exceeds a certain level
- Timsort: adaptative algorithm derived from merge sort and insertion sort. Used in Python >=2.3 and Java SE 7.
- Insertion sorts
- Merge sorts
- Merge sort: sort the first and second half of the list separately, then merge the sorted lists
- Strand sort
- Non-comparison sorts
- Selection sorts
- Heapsort: convert the list into a heap, keep removing the largest element from the heap and adding it to the end of the list
- Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
- Smoothsort
- Other
- Unknown class
Subsequences
Substrings
Computational mathematics
Abstract algebra
Computer algebra
Geometry
Number theoretic algorithms
Numerical algorithms
Differential equation solving
Elementary and special functions
Geometric
Interpolation and extrapolation
Linear algebra
Monte Carlo
Numerical integration
Root finding
Optimization algorithms
Computational science
Astronomy
Bioinformatics
Geoscience
- Vincenty's formulae: a fast algorithm to calculate the distance between two latitude/longitude points on an ellipsoid
Linguistics
Medicine
Physics
Statistics
Computer science
Computer architecture
- Tomasulo algorithm: allows sequential instructions that would normally be stalled due to certain dependencies to execute non-sequentially
Computer graphics
- Clipping
- Contour lines and Isosurfaces
- Discrete Green's Theorem: is an algorithm for computing double integral over a generalized rectangular domain in constant time. It is a natural extension to the summed area table algorithm
- Flood fill: fills a connected region of a multi-dimensional array with a specified symbol
- Global illumination algorithms: Considers direct illumination and reflection from other objects.
- Hidden surface removal or Visual surface determination
- Line Drawing: graphical algorithm for approximating a line segment on discrete graphical media.
- Midpoint circle algorithm: an algorithm used to determine the points needed for drawing a circle
- Ramer–Douglas–Peucker algorithm: Given a 'curve' composed of line segments to find a curve not too dissimilar but that has fewer points
- Shading
- Gouraud shading: an algorithm to simulate the differing effects of light and colour across the surface of an object in 3D computer graphics
- Phong shading: an algorithm to interpolate surface normal-vectors for surface shading in 3D computer graphics
- Slerp (spherical linear interpolation): quaternion interpolation for the purpose of animating 3D rotation
- Summed area table (also known as an integral image): an algorithm for computing the sum of values in a rectangular subset of a grid in constant time
Cryptography
Digital logic
Machine learning and statistical classification
Programming language theory
Parsing
Quantum algorithms
Theory of computation and automata
Information theory and signal processing
Coding theory
Error detection and correction
Lossless compression algorithms
Lossy compression algorithms
Digital signal processing
Image processing
Software engineering
Database algorithms
Distributed systems algorithms
Memory allocation and deallocation algorithms
Operating systems algorithms
Disk scheduling
Networking
Process synchronization
Scheduling
See also
References